The present invention relates to an echo canceler provided in a data processing system.
Echo cancelers are known per se. In many audio applications, a first audio signal is broadcast from an audio output device such as a speaker. The first audio signal may be captured by an audio input device such as a microphone and returned to the signal""s source. The audio input device also may capture other audio signals. The first audio signal, often called the xe2x80x9cecho,xe2x80x9d may interfere with the intelligibility or perceived quality of the other audio signals. Echo cancelers are used to remove the echo signal but permit the other audio signals to remain.
FIG. 1 illustrates an audio sub-system of a known data processing system in which echo cancellation may be used. The audio sub-system receives and buffers audio data, called the xe2x80x9creference channel,xe2x80x9d to be output from the system. The audio sub-system also captures and buffers ambient audio in a second channel, called the xe2x80x9cecho channel.xe2x80x9d It delivers the echo channel to the data processing system.
The audio subsystem includes an echo canceling system 100, an output device 200 and an input device 300. The echo canceling system 100 includes an audio rendering filter 110 and an echo canceler 120. The audio rendering filter 110 receives and formats as necessary the reference channel. It outputs audio data to the output device 200.
The output device 200 includes a buffer 210 (xe2x80x9coutput bufferxe2x80x9d) and a speaker 220 or other announcement device (xe2x80x9cspeakerxe2x80x9d). As is known, the output device 200 also may include a controller and device driver equipment (not shown). The reference channel is received from the echo cancellation system at the output buffer 210. The output buffer 210 stores the reference channel for a predetermined period of time before delivering it to the speaker 220. The reference channel is output from the output device 200 through the speaker 220. As the reference channel is output from the output buffer 210 to the speaker 220, a copy of the reference channel is delivered to the input device 300 over line 230.
The input device 300 includes its own buffer 310 (xe2x80x9cinput bufferxe2x80x9d) and a microphone 320 or other audio capture device (xe2x80x9cmicrophonexe2x80x9d). The microphone 320 captures audio data and generates an echo channel signal therefrom. It delivers the echo channel signal to the input buffer 310. The input buffer 310 stores the echo channel for a predetermined period of time, then delivers it to the echo cancellation system 100.
The input buffer 320 also receives a copy of the reference channel from the output device 200. It buffers the reference channel for a predetermined period of time then delivers it to the echo canceler 120.
FIG. 1 figuratively illustrates the echo phenomenon that may occur in a speakerphone type of implementation of the audio sub-system. Assume that the audio sub-system is provided in a 10xe2x80x2xc3x9710xe2x80x2 room. When the reference channel is output by the speaker 220, sound energy may travel to the microphone 320 through a variety of different paths, P1-P4. The shortest path is provided on a direct path P1 from the speaker 220 to the microphone 320. It is associated with a first delay. Other paths P2-P4 may occur because of reflections from nearby objects such as wall surfaces, people and things. Each path is associated with its own delay. Of course, people and things (including the speaker and microphone) may move which can cause the delay and/or attenuation of the various paths to change with time. The echo channel captured by the microphone 320 is, in fact, an aggregate of a variety of reflections that may occur in a particular environment. The echo channel may include an echo signal that represents the multiple echos of paths P1-P4 and also other signals representing audio generated at the microphone 320 such as input speech.
The echo canceler 120 receives the reference signal having been delayed by the input and output buffers 210-310 and the captured echo channel from the input device 300. For the echo canceler 120 to operate effectively, it must receive an onset of the echo signal within a predetermined positive offset from its receipt of the corresponding signal in the reference channel. The echo canceler 120 typically stores only a predetermined portion of the reference channel (e.g. 60-200 msec). If the acoustical echo signal corresponding to the buffered portion is not received within the 60-200 msec window, the echo canceler 120 will have discarded the portion of the reference channel when the echo signal is received. The echo canceler 120 would neither recognize the echo signal as echo nor cancel it in this case.
Traditional computer audio systems include xe2x80x9ccorrelated audioxe2x80x9d device drivers that can measure the delay imposed by the input and output buffers 210, 310. The same buffering is applied to both the reference channel and the echo channel. Accordingly, only the delay of paths P1-P4 contribute to any skew between the reference channel and an echo signal contained in the echo channel. Adaptive filtering at the echo canceler 120 approximates the delay of sound paths P1-P4 to correct for the skew.
Modern computer systems may discontinue use of the correlated audio device drivers that makes the precise delay tuning possible. Thus, there is a need in the art for an audio system that maintains time alignment between a reference channel and an echo channel even in the absence of correlated audio device drivers.
An embodiment of the present invention provides an echo cancellation system in which an echo canceler has an echo channel signal input, a reference channel signal input and a control output, the two inputs being uncorrelated, and a delay buffer has an input for a reference channel signal, an output in communication with reference channel signal input and a control input in communication with the control output from the echo canceler.